package org.summer.lawyer.domain.vo.brokerageconfig;

import io.github.linpeilie.annotations.AutoMapper;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.summer.lawyer.domain.BrokerageConfig;

import java.io.Serial;
import java.io.Serializable;



/**
 * 分销配置视图对象 brokerage_config
 *
 * @author summer
 * @date 2024-06-28
 */
@Schema(title ="分销配置视图对象 brokerage_config", description = "分销配置视图对象 brokerage_config")
@Data
@AutoMapper(target = BrokerageConfig.class)
public class BrokerageConfigVo implements Serializable{

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @Schema(title = "id", type = "Long", description = "主键ID")
    private Long id;

    /**
     * 是否启用分佣(0禁用，1启用）
     */
    @Schema(title = "enableBrokerage", type = "String", description = "是否启用分佣(0禁用，1启用）")
    private String enableBrokerage;

    /**
     * 分销模式(1人人分销，2指定分销）
     */
    @Schema(title = "brokerageMode", type = "String", description = "分销模式(1人人分销，2指定分销）")
    private String brokerageMode;

    /**
     * 分销关系绑定(1首次绑定，2注册绑定，3覆盖绑定）
     */
    @Schema(title = "bindMode", type = "String", description = "分销关系绑定(1首次绑定，2注册绑定，3覆盖绑定）")
    private String bindMode;

    /**
     * 一级返佣比例(一级返佣比例必须在 0 - 100 之间)
     */
    @Schema(title = "firstPercent", type = "Integer", description = "一级返佣比例(一级返佣比例必须在 0 - 100 之间)")
    private Integer firstPercent;

    /**
     * 用户提现最低金额（单位分）
     */
    @Schema(title = "withdrawMinPrice", type = "Long", description = "用户提现最低金额（单位分）")
    private Long withdrawMinPrice;

    /**
     * 提现手续费百分比，范围 0-100，0 为无提现手续费。例：设置 10，即收取 10% 手续费，提现 10 元，到账 9 元，1 元手续费
     */
    @Schema(title = "withdrawFeePercent", type = "Integer", description = "提现手续费百分比，范围 0-100，0 为无提现手续费。例：设置 10，即收取 10% 手续费，提现 10 元，到账 9 元，1 元手续费")
    private Integer withdrawFeePercent;

    /**
     * 佣金冻结时间(天) 防止用户退款，佣金被提现了，所以需要设置佣金冻结时间，单位：天
     */
    @Schema(title = "brokerageFrozenDay", type = "Integer", description = "佣金冻结时间(天) 防止用户退款，佣金被提现了，所以需要设置佣金冻结时间，单位：天")
    private Integer brokerageFrozenDay;

    /**
     * 提现方式( 1微信，2支付宝）
     */
    @Schema(title = "withdrawType", type = "String", description = "提现方式( 1微信，2支付宝）")
    private String withdrawType;

    /**
     * 分佣是否有上限(0没有上限，1有上限）
     */
    @Schema(title = "enableMax", type = "String", description = "分佣是否有上限(0没有上限，1有上限）")
    private String enableMax;

    /**
     * 返佣上限金额
     */
    @Schema(title = "maxAmount", type = "Long", description = "返佣上限金额")
    private Long maxAmount;

    /**
     * 是否启用订单分成(0禁用，1启用）
     */
    @Schema(title = "enableOrder", type = "String", description = "是否启用订单分成(0禁用，1启用）")
    private String enableOrder;

    /**
     * 订单分成方式(1固定金额，2按比例）
     */
    @Schema(title = "orderProfit", type = "String", description = "订单分成方式(1固定金额，2按比例）")
    private String orderProfit;

    /**
     * 订单分成比例
     */
    @Schema(title = "orderPercent", type = "Integer", description = "订单分成比例")
    private Integer orderPercent;

    /**
     * 订单分成固定金额
     */
    @Schema(title = "orderProfitAmount", type = "Long", description = "订单分成固定金额")
    private Long orderProfitAmount;
}
